Entity Framework (EF) এর মাইগ্রেশন সিস্টেমের মাধ্যমে, ডেটাবেসের কাঠামোর পরিবর্তন ট্র্যাক এবং প্রয়োগ করা হয়। যখন আপনি Add-Migration কমান্ড দিয়ে নতুন মাইগ্রেশন তৈরি করেন এবং তারপর Update-Database কমান্ড ব্যবহার করেন, তখন আপনার ডেটাবেসটি সেই মাইগ্রেশনের পরিবর্তন অনুযায়ী আপডেট হয়। যদি কোন কারণে আপনি মাইগ্রেশনটি রোলব্যাক করতে চান, তাহলে Rollback কমান্ড ব্যবহার করা হয়।
Update-Database কমান্ড
Update-Database কমান্ডটি Entity Framework মাইগ্রেশন সিস্টেমের একটি গুরুত্বপূর্ণ অংশ, যা তৈরি করা মাইগ্রেশন ফাইলগুলিকে বাস্তব ডেটাবেসে প্রয়োগ করে। যখন আপনি আপনার মডেল বা Entity ক্লাসে কোনো পরিবর্তন করেন এবং সেই পরিবর্তনগুলির জন্য নতুন মাইগ্রেশন তৈরি করেন, তখন Update-Database কমান্ড ব্যবহার করে সেগুলো ডেটাবেসে বাস্তবায়ন করতে হয়।
ব্যবহারের পদ্ধতি:
সর্বশেষ মাইগ্রেশন প্রয়োগ করা:
Update-Databaseএই কমান্ডটি আপনার ডেটাবেসের জন্য সর্বশেষ মাইগ্রেশন প্রয়োগ করবে। এটি আপডেটেড স্কিমা অনুযায়ী ডেটাবেসে পরিবর্তন করবে।
বিশেষ মাইগ্রেশন প্রয়োগ করা: আপনি যদি কোন নির্দিষ্ট মাইগ্রেশন প্রয়োগ করতে চান, তাহলে আপনি
-Migrationপ্যারামিটার ব্যবহার করতে পারেন:Update-Database -Migration AddPhoneNumberToCustomerএখানে
AddPhoneNumberToCustomerহল মাইগ্রেশনটির নাম, যা আপনার ডেটাবেসে প্রয়োগ করা হবে।ডিফল্ট কনটেক্সট ব্যবহার: যদি আপনার একাধিক DbContext থাকে, তবে আপনি কনটেক্সটের নাম নির্দিষ্ট করে দিতে পারেন:
Update-Database -Context MyDbContextএই কমান্ডটি নির্দিষ্ট DbContext ব্যবহার করে ডেটাবেস আপডেট করবে।
ডেটাবেস কানেকশন স্ট্রিং নির্দিষ্ট করা: যদি আপনি ডিফল্ট কানেকশন স্ট্রিংয়ের পরিবর্তে অন্য কোনো কানেকশন স্ট্রিং ব্যবহার করতে চান, তবে এটি
-ConnectionStringপ্যারামিটার ব্যবহার করে দিতে পারবেন:Update-Database -ConnectionString "YourConnectionString"উন্নত অপশন: আপনি যখন ডেটাবেস আপডেট করেন, তখন
-Verboseঅপশন ব্যবহার করে মাইগ্রেশন প্রক্রিয়া সম্পর্কে আরও বিস্তারিত তথ্য পেতে পারেন:Update-Database -Verbose
Rollback Command (Rollback মাইগ্রেশন)
Rollback বা পূর্ববর্তী মাইগ্রেশন ফেরত নেয়া Entity Framework-এর মাধ্যমে সহজেই করা যায়। যদি কোনো কারণে আপনি পূর্ববর্তী মাইগ্রেশন সংস্করণে ফিরে যেতে চান, তাহলে Update-Database কমান্ডের সাথে -TargetMigration প্যারামিটার ব্যবহার করা হয়। এটি আপনার ডেটাবেসকে সেই মাইগ্রেশন পর্যন্ত ফিরিয়ে নিয়ে যাবে যেটি আপনি নির্দিষ্ট করেন।
ব্যবহারের পদ্ধতি:
একটি নির্দিষ্ট মাইগ্রেশন স্তরে রোলব্যাক: আপনি যদি একটি নির্দিষ্ট মাইগ্রেশনে ফিরে যেতে চান, তাহলে TargetMigration প্যারামিটার ব্যবহার করবেন:
Update-Database -TargetMigration: "PreviousMigration"এখানে
PreviousMigrationহল সেই মাইগ্রেশনটির নাম, যা আপনি ফিরিয়ে নিতে চান। এই কমান্ডটি ডেটাবেসে সমস্ত পরিবর্তন রোলব্যাক করে পূর্ববর্তী মাইগ্রেশনকে পুনরুদ্ধার করবে।অথবা, পূর্ববর্তী মাইগ্রেশনে ফিরে আসা: আপনি যদি মাইগ্রেশনটি সম্পূর্ণভাবে রোলব্যাক করতে চান (মানে, ডেটাবেসে কোন পরিবর্তন না থাকা অবস্থায় ফিরিয়ে আসতে চান), তাহলে
-TargetMigration: 0ব্যবহার করতে পারেন:Update-Database -TargetMigration: 0এটি ডেটাবেসকে প্রথম মাইগ্রেশন বা কোনো মাইগ্রেশন না থাকা অবস্থায় ফিরিয়ে নিয়ে যাবে।
Rollback এবং Up Migration এর পার্থক্য
- Rollback:
যখন আপনি রোলব্যাক করেন, তখন আপনার ডেটাবেসে পূর্ববর্তী অবস্থায় ফিরে যেতে সমস্ত পরিবর্তনগুলি ব্যাকআউট করা হয়।Downমেথডে সংজ্ঞায়িত থাকা সমস্ত কোড কার্যকর হয়ে ডেটাবেস থেকে পরিবর্তন মুছে ফেলা হয়। - Up Migration:
Upমেথডে সংজ্ঞায়িত পরিবর্তনগুলি ডেটাবেসে নতুন কোড প্রয়োগ করে ডেটাবেস আপডেট করা হয়।
মাইগ্রেশন পদ্ধতিতে কিছু সাধারণ সমস্যা এবং সমাধান
- মাইগ্রেশন অ্যাপ্লাই করতে না পারা: যদি কোনো কারণে মাইগ্রেশন প্রয়োগ করতে না পারেন, তাহলে প্রথমে ডেটাবেসের স্টেট চেক করুন। কোনো পূর্ববর্তী মাইগ্রেশন সঠিকভাবে প্রয়োগ না হওয়া বা ডেটাবেসের কিছু সমস্যা থাকলে এটি হতে পারে। তৎক্ষণাৎ
Update-Databaseকমান্ড চালানোর আগে মাইগ্রেশন ফাইলগুলো সঠিকভাবে তৈরি হয়েছে কি না তা পরীক্ষা করে নিন। - Rollback পর ডেটাবেস স্টেট সঠিক না হওয়া: কখনো কখনো রোলব্যাক কমান্ড দিয়ে ডেটাবেস ফেরত নিতে গেলে, আপনার Entity ক্লাসের সাথে ডেটাবেসের কাঠামো সঠিকভাবে সিঙ্ক না হওয়া থাকতে পারে। এই ক্ষেত্রে, আপনি আবার
Add-MigrationএবংUpdate-Databaseকমান্ড ব্যবহার করে ডেটাবেসকে সঠিক অবস্থায় ফিরিয়ে আনতে পারেন।
Entity Framework এর Update-Database এবং Rollback কমান্ড ব্যবহারের মাধ্যমে আপনি ডেটাবেসের কাঠামো সহজেই পরিচালনা করতে পারবেন, যা ডেভেলপমেন্টের সময় খুবই কার্যকরী ও সুবিধাজনক।
Read more